/*
 * File:   F05.h
 * Author: jcrada
 *
 * Created on 23 July 2011, 12:58 PM
 */

#ifndef JRV_F05_H
#define	JRV_F05_H

#include "ecb/base/Problem.h"

#include "ecb/function/HyperEllipsoid.h"

namespace ecb {
    namespace jrv11 {

        class F05 : public Problem {
        private:
            Problem* hyperellipsoid;
        public:

            F05(int dimensions)
            : Problem("F05", "HyperEllipsoid", dimensions,
            -5.12, 5.12, true) {
                hyperellipsoid = new HyperEllipsoid;
            }

            ~F05() {
                delete hyperellipsoid;
            }

            scalar f(const std::vector<scalar>& x) {
                return hyperellipsoid->f(x);
            }
        };
    }
}

#endif	/* JRV_F05_H */

